linux 的readelf命令查看so文件

您所在的位置:网站首页 linux 查看源代码 linux 的readelf命令查看so文件

linux 的readelf命令查看so文件

2023-09-15 21:45| 来源: 网络整理| 查看: 265

查看readelf 的帮助说明(选项)

一般可以使用readelf工具来获得so的详细信息。 windows可以使用So Helper工具(个人感觉不太好用)

$ readelf -h #下面时命令输出的help说明 caizhigui@czg-ThinkPad-ubuntu:~/czgSoft/czgTemp/wechat 7.0.5/lib/armeabi-v7a$ readelf -h readelf: Warning: Nothing to do. Usage: readelf elf-file(s) Display information about the contents of ELF format files Options are: -a --all Equivalent to: -h -l -S -s -r -d -V -A -I -h --file-header Display the ELF file header -l --program-headers Display the program headers --segments An alias for --program-headers -S --section-headers Display the sections' header --sections An alias for --section-headers -g --section-groups Display the section groups -t --section-details Display the section details -e --headers Equivalent to: -h -l -S -s --syms Display the symbol table --symbols An alias for --syms --dyn-syms Display the dynamic symbol table -n --notes Display the core notes (if present) -r --relocs Display the relocations (if present) -u --unwind Display the unwind info (if present) -d --dynamic Display the dynamic section (if present) -V --version-info Display the version sections (if present) -A --arch-specific Display architecture specific information (if any) -c --archive-index Display the symbol/file index in an archive -D --use-dynamic Use the dynamic section info when displaying symbols -x --hex-dump= Dump the contents of section as bytes -p --string-dump= Dump the contents of section as strings -R --relocated-dump= Dump the contents of section as relocated bytes -z --decompress Decompress section before dumping it -w[lLiaprmfFsoRtUuTgAckK] or --debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames, =frames-interp,=str,=loc,=Ranges,=pubtypes, =gdb_index,=trace_info,=trace_abbrev,=trace_aranges, =addr,=cu_index,=links,=follow-links] Display the contents of DWARF debug sections --dwarf-depth=N Do not display DIEs at depth N or greater --dwarf-start=N Display DIEs starting with N, at the same depth or deeper -I --histogram Display histogram of bucket list lengths -W --wide Allow output width to exceed 80 characters @ Read options from -H --help Display this information -v --version Display the version number of readelf

常用的选项说明

-a 显示so文件所以信息 -h ELF文件头 -l program-headers ,静态加载分析时需要的信息 -S section-headers ,静态加载分析时需要的信息 -e 头信息,elf header,section header,program header -s 显示符号表 -d 显示动态节 readelf -h 查看so的头信息

ELF格式文件符号表全解析及readelf命令使用方法

$ readelf -h libwechatxlog.so readelf -h readelf -S查看so ---静态加载分析时需要的信息(ida工具就是利用该功能来加载) $ readelf -S libwechatxlog.so readelf -S readelf -l 查看so ---动态加载分析时需要的信息(ida工具调试就是利用该功能来加载)

如果so文件被混淆,那么Section Headers可能是错的,被修改过的,但它的Program Headers肯定是对的。

$ readelf -l libwechatxlog.so readelf -l readelf -d 查看so ---动态节--可以看到程序依赖库的文件、表的备注信息之类 $ readelf -d libwechatxlog.so readelf -d readelf -s 符号表机制

符号表保存了程序实现或使用的所有全局变量和函数,如果程序引用一个自身代码未定义的符号,则称之为未定义符号,这类引用必须在静态链接期间用其他目标模块或库解决,或在加载时通过动态链接解决。

$ readelf -s libwechatxlog.so readelf -s

参考文献 ELF格式文件符号表全解析及readelf命令使用方法 objdump命令解析



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3